gusucode.com > GUI界面实现语音增强matlab源码程序 > speech enhancement/last.m

    wave_serial=wavread('4ks71.wav');
figure(1);
plot(wave_serial);

b=fir1(10,1/8);
s=filter(b,1,wave_serial);

E=zeros(1,2000);
N=2000;
for i=1:N
   E(i)=abs(s(i));
end
figure(2);
plot(E);

M1=0.03;
for i=0:N
   if E(N-i)>M1
      X=N-i;
      break
   end
end

X1=X-600;
X2=X-200;
s1=s(X1:X2);
N1=200;
r=zeros(1,200);
for i=1:N1
   for j=1:N1
      r(i)=r(i)+abs(s1(j)-s1(i+j));
   end
end
figure(3);
plot(r);

M2=r(1);
for i=1:N1
   if r(i)>M2
      M2=r(i);
   end
end
M2=M2/2-1;

Y=zeros(1,20);
B=zeros(1,20);
j=0;
for i=2:(N1-1)
   if r(i-1)>r(i) & r(i)<r(i+1) & r(i) <M2
       j=j+1;
       Y(j)=i;
       B(j)=r(i);
   end
end

F=0;
j=j-1;
N_keynote=0;
for i=1:j
   N_keynote=N_keynote+(Y(i+1)-Y(i));
end
F=j*4000/N_keynote;

res='0';
if F<=195
   res='M';
else
   res='F';
end

F
M2
res
Y
B